import { Module } from '@nestjs/common';
import { AuthController } from './auth.controller';
import { UserModule } from '../user/user.module';
import { AuthService } from './auth.service';
import { APP_GUARD } from '@nestjs/core';
import { AuthGuard } from './auth.guard';
import { JwtModule } from '@nestjs/jwt';
import { TOKEN_SECRET_KEY } from './utils/handle-token';
import { HandleTokenService } from './utils/handle-token';
// import { UserService } from '../user/user.service';
@Module({
  // APP_GUARD 是一个 全局令牌 ，注册的守卫会应用到 整个应用程序的所有路由 ，而不只是注册它的模块。
  imports: [
    UserModule,
    JwtModule.register({
      // 密钥
      secret: TOKEN_SECRET_KEY,
      // 是否全局
      global: true,
      // token的过期时间
      signOptions: { expiresIn: '24h' },
    }),
  ],
  controllers: [AuthController],
  providers: [
    AuthService,
    HandleTokenService,
    {
      provide: APP_GUARD,
      useClass: AuthGuard,
    },
  ],
})
export class AuthModule {}
